#ifndef  __Object__
#define   __Object__

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


typedef struct ObjectTag{
	void (*toString)(ObjectTag* self, char* str);
	int (*equals)(ObjectTag* self, ObjectTag* other);
} Object;

int __objectEquals(Object* self, Object* other) {
	return self == other;
}

void __objectToString(Object* self, char* str) {
	strcpy(str, "object");
}


void ObjectConstruct(Object* self) {
	self->equals = __objectEquals;
	self->toString = __objectToString;
}

void ObjectDestruct(Object* self) {
	// ....
}

#endif
